// 环境配置
const ENV = {
	development: {
		baseUrl: 'http://zmgdfm.natappfree.cc',
		imageBaseUrl: 'http://zmgdfm.natappfree.cc'
	},
	production: {
		baseUrl: 'https://api.example.com',
		imageBaseUrl: 'https://api.example.com'
	}
}

// 当前环境
const currentEnv = 'development'

export const config = {
	// 基础配置
	baseUrl: ENV[currentEnv].baseUrl,
	imageBaseUrl: ENV[currentEnv].imageBaseUrl,
	
	// 微信小程序配置
	wx: {
		appid: 'wx84a4d862d5050421'
	},
	
	// 请求配置
	request: {
		timeout: 10000,
		header: {
			'Content-Type': 'application/json'
		}
	},
	
	// 存储键名
	storage: {
		token: 'token',
		userInfo: 'userInfo'
	}
}

// 请求拦截器
export const requestInterceptor = {
	request(options) {
		// 添加token，使用Bearer格式
		const token = uni.getStorageSync('token')
		if (token) {
			options.header = {
				...options.header,
				'Authorization': `Bearer ${token}`
			}
		}
		
		// 添加基础URL
		if (!options.url.startsWith('http')) {
			options.url = config.baseUrl + options.url
		}
		
		return options
	},
	
	response(res) {
		// 统一处理响应
		if (res.statusCode === 401) {
			// token过期或未登录
			uni.removeStorageSync('token')
			uni.removeStorageSync('userInfo')
			uni.removeStorageSync('userRole')
			
			uni.showToast({
				title: '请先登录',
				icon: 'none',
				success: () => {
					setTimeout(() => {
						uni.navigateTo({
							url: '/pages/user/login'
						})
					}, 1500)
				}
			})
			return Promise.reject(new Error('未登录或登录已过期'))
		}
		
		return res
	}
}

// 初始化请求拦截器
uni.addInterceptor('request', requestInterceptor)
uni.addInterceptor('uploadFile', requestInterceptor) 